import dateParse from "./date-parse.js";

/**
 * @description 获取日期是一年中的第几周
 * @param {String|Number|Date} date 日期数据
 * @returns {Number} 周数
 */
export default function dateWeekOfYear(date) {
	date = dateParse(date);
	// 复制日期对象，避免修改原日期
	const temp = new Date(date);
	// 调整日期为周四（ISO周以周一为第一天，周四是一周的中间日）
	temp.setDate(temp.getDate() + 4 - (temp.getDay() || 7));
	// 获取该周四所在年份的第一天
	const yearStart = new Date(temp.getFullYear(), 0, 1);
	// 计算当前周是该年的第几周（除以7并取整）
	return Math.ceil(((temp - yearStart) / 86400000 + 1) / 7);
}
